/**
 * 使用介绍：
 * 1、需通过vue全局注册组件并使用
 * 2、需要绑定一个用来接收编辑器内容的参数
 * editorContent:{html: ""}
 * 3、可以自定义绑定wangEditor的官网参数，或一个内容高度的参数：默认400px
 * wangEditorParams:{customConfig: {},contentHeight: "400px"}
 */
define(function(require, exports, module) {
	// vue，模板路由配置
	exports = {
		// 通过绑定标签属性传过来的值
		props: {
			// 富文本编辑框参数
			wangEditorParams: {
				type: Object,
				default: function() {
					return {
						customConfig: {},
						contentHeight: "400px"
					}
				}
			},
			editorContent: {
				type: Object,
				default: function() {
					return {
						html: ""
					}
				}
			}
		},
		// 页面数据
		data: function() {
			return {
				// 图片上传路径
				wangEditorFileUploadUrl: "file/wangEditorFileUpload",
				// 网络请求参数
				urlParams: $indexScope.urlParams,
				wangEditorId: {
					menu: "menu" + new Date().getTime(),
					content: "content" + new Date().getTime()
				},
				editor: null
			}
		},
		// 方法
		methods: {
			// 页面跳转
			goPage: function(path) {
				$indexScope.goPage(path);
			},
			// 通过正负数返回前进页面
			goHistory: function(n) {
				$indexScope.goHistory(n);
			},
			// 初始化富文本编辑框
			initWangEditor: function() {
				var thisx = this;
				require(["lib/wangEditor/3.1.1/wangEditor.min.js"], function(WangEditor) {
					thisx.editor = new WangEditor("#" + thisx.wangEditorId.menu, "#" + thisx.wangEditorId.content);
					thisx.initWangEditorConfig();
					thisx.editor.create();
					var sessionHtml = sessionStorage.getItem("wangEditor_content");
					// 初始化编辑器内容
					if(sessionHtml == null || sessionHtml == undefined) {
						thisx.editor.txt.html(thisx.editorContent.html);
					} else {
						thisx.editor.txt.html(sessionHtml);
					}
				});
			},
			// 初始化配置
			initWangEditorConfig: function() {
				var thisx = this;
				// 绑定内容修改返回的Html内容
				this.editor.customConfig.onchange = function(html) {
					thisx.editorContent.html = html;
					sessionStorage.setItem("wangEditor_content", html);
				};
				// 配置上传文件路径
				this.editor.customConfig.uploadImgServer = this.urlParams.projectPath + this.wangEditorFileUploadUrl + this.urlParams.suffix;
				// 配置跨域发送cookie
				this.editor.customConfig.withCredentials = true;
				// 配置编辑框参数
				for(key in this.wangEditorParams.customConfig) {
					this.editor.customConfig[key] = this.wangEditorParams.customConfig[key];
				}
				// 设置编辑器的内容的高度
				$("." + this.wangEditorId.content).css({
					height: this.wangEditorParams.contentHeight
				});
			}
		},
		// 导航钩子-页面渲染完运行的方法
		mounted: function() {
			this.initWangEditor();
		}
	};
	return exports;
});